package com.heima.service.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.heima.mapper.SkuClassMapper;
import com.heima.pojo.SkuClass;
import com.heima.pojo.vo.SkuClassPageResult;
import com.heima.pojo.dto.SkuClassDto;
import com.heima.pojo.dto.SkuClazzPageDto;
import com.heima.pojo.vo.SkuClassVo;
import com.heima.service.SkuClassService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
@Slf4j
public class SkuClassServiceImpl implements SkuClassService {

    @Autowired
    SkuClassMapper skuClassMapper;

    @Override
    public SkuClassPageResult queryList(SkuClazzPageDto param) {
        //健壮性判断
        param.check();
        //告知PageHelper当前是第几页，每页显示多少条数据
        PageHelper.startPage(param.getPageIndex(),param.getPageSize());
        //调用Mapper查询数据
        Page<SkuClass> skuClazzes = skuClassMapper.queryList(param);
        log.info("mapper传回的参数:{}",skuClazzes.getResult());
        SkuClassPageResult skuClazzPageVo = new SkuClassPageResult();
        skuClazzPageVo.setPageIndex(param.getPageIndex());
        skuClazzPageVo.setPageSize(param.getPageSize());
        skuClazzPageVo.setTotalPage(skuClazzes.getPages());
        skuClazzPageVo.setTotalCount(skuClazzes.getTotal());
        skuClazzPageVo.setCurrentPageRecords(skuClazzes.getResult());
        return skuClazzPageVo;
    }

    //新增分类
    @Override
    public void add(SkuClass skuCLazz) {
        skuClassMapper.add(skuCLazz);
    }

    /**
     * 根据id查询分类基本信息
     * @param classId
     * @return
     */
    @Override
    public SkuClassVo getBasicInfo(String classId) {
        //将字符串类型的参数转换为Integer
        int id = Integer.parseInt(classId);
        //调用mapper
        return skuClassMapper.getBasicInfo(id);
    }

    /**
     * 修改分类
     * @param
     */
    @Override
    public void update(String classId, SkuClassDto dto) {
        //封装数据
        SkuClass skuClazz = new SkuClass();
        skuClazz.setClassId(Long.parseLong(classId));
        skuClazz.setClassName(dto.getClassName());
        //调用mapper修改
        skuClassMapper.update(skuClazz);
    }

    /**
     * 删除分类
     * @param classId
     */
    @Override
    public void delSkuClass(String classId) {
        //转换字符串类型
        Integer id = Integer.parseInt(classId);
        //调用mapper
        skuClassMapper.delSkuClass(id);
    }
}
